insert into asm_estr_paol_BF  select  
     bollette_forniture.CODICE_CONTRATTO as COD_CONTR,
     bollette_forniture.CODICE_BOLLETTA,
     bollette_forniture.CODICE_AC as AC,
     '',
     bollette_forniture.data_inizio_c as dt_let_in,
     bollette_forniture.data_fine_c as  dt_let_fin,
     case when bollette_forniture.data_inizio_c is null then '' else  bollette_forniture.LETTURA_INIZIO_C end as letinic1,
     case when bollette_forniture.data_inizio_c is null then '' else  bollette_forniture.LETTURA_fine_C end as letfinec1,   
     case when bollette_forniture.data_inizio_c is null then '' else  bollette_forniture.consumo_c end as cons1,    
        bollette_forniture.CONSUMO_FATTURATO_T as consfa,
     
        bollette_forniture_ls.LETTURA_INIZIO_C2 as letinic2,
        bollette_forniture_ls.LETTURA_FINE_C2 as letfinec2,
        bollette_forniture_ls.consumo_c2 as CONS2,
        bollette_forniture_ls.LETTURA_INIZIO_C3 as letinic3,
        bollette_forniture_ls.LETTURA_FINE_C3 as letfinec3,
        bollette_forniture_ls.consumo_c3 as CONS3,
        bollette_forniture_ls.LETTURA_INIZIO_C4 as letinic4,
        bollette_forniture_ls.LETTURA_FINE_C4 as letfinec4,
        bollette_forniture_ls.consumo_c4 as CONS4,
        bollette_forniture_ls.LETTURA_INIZIO_R1 as letinir1,
        bollette_forniture_ls.LETTURA_FINE_R1 as   letfiner1,
        bollette_forniture_ls.consumo_r1 as CONS_R1,
        bollette_forniture_ls.LETTURA_INIZIO_R2 as letinir2,
        bollette_forniture_ls.LETTURA_FINE_R2 as   letfiner2,
        bollette_forniture_ls.consumo_r2 as CONS_R2,
        bollette_forniture_ls.LETTURA_INIZIO_R3 as letinir3,
        bollette_forniture_ls.LETTURA_FINE_R3 as   letfiner3,
        bollette_forniture_ls.consumo_r3 as CONS_R3,
        bollette_forniture_ls.LETTURA_INIZIO_R4 as letinir4,
        bollette_forniture_ls.LETTURA_FINE_R4 as   letfiner4,
        bollette_forniture_ls.consumo_r4 as CONS_R4,
        bollette_forniture_ls.INDICE_MASSIMA_1 as pmax_1,
        bollette_forniture_ls.INDICE_MASSIMA_2 as pmax_2,
        bollette_forniture_ls.INDICE_MASSIMA_3 as pmax_3,
        bollette_forniture_ls.INDICE_MASSIMA_4 as pmax_4
                                          
                                                
                                                
                                                
                                                
        
    from bollette_forniture,bollette_forniture_ls,
            (select bollette_forniture.codice_bolletta,
             max(bollette_forniture.codice_contratto) COD_CONTR
             from bollette_forniture,bollette
             where bollette_forniture.codice_gestione = 'ASM'
             and bollette_forniture.codice_servizio = 'E'
             and bollette_forniture.codice_bolletta = bollette.codice_bolletta
             and bollette.CODICE_GESTIONE = 'ASM'
             
             --AND BOLLETTE.MESE_BOLLETTAZIONE =^Mese bollettazione MM ;N;Numerico^^
             
             and BOLLETTE.MESE_BOLLETTAZIONe <= 
      case when ^mese bollettazione xx ( se 0 tutte);N;Numerico^^ = 0 then 9999 
      else ^mese bollettazione xx( se 0 tutte);N;Numerico;1^^ end
      and BOLLETTE.MESE_BOLLETTAZIONe >= case when ^mese bollettazione xx ( se 0 tutte);N;Numerico;1^^ = 0 then 0 
      else ^mese bollettazione xx ( se 0 tutte);N;Numerico;1^^  end
             
             AND BOLLETTE.ANNO_BOLLETTAZIONE = ^Anno bollettazione AAAA ;N;Numerico^^
             --AND BOLLETTE.MESE_BOLLETTAZIONE =01
             --AND BOLLETTE.ANNO_BOLLETTAZIONE = 2010
       
            and BOLLETTE.PROGRESSIVO_BOLLETTAZIONE <= 
      case when ^Progressivo bollettazione PP ( se 0 tutte);N;Numerico^^ = 0 then 9999 
      else ^Progressivo bollettazione PP ( se 0 tutte);N;Numerico;3^^ end
      and BOLLETTE.PROGRESSIVO_BOLLETTAZIONE >= case when ^Progressivo bollettazione PP ( se 0 tutte);N;Numerico;3^^ = 0 then 0 
      else ^Progressivo bollettazione PP ( se 0 tutte);N;Numerico;3^^  end
            
             group by bollette_forniture.codice_bolletta
         ) BFMAX
       where bollette_forniture.CODICE_BOLLETTA = bfmax.codice_bolletta
       and   bollette_forniture.codice_contratto = bfmax.cod_contr            
       and   bollette_forniture.codice_gestione = 'ASM'
       and bollette_forniture.codice_servizio = 'E'
       and bollette_forniture_ls.codice_gestione(+) = bollette_forniture.codice_gestione
       and bollette_forniture_ls.codice_servizio(+) =bollette_forniture.codice_servizio
       and bollette_forniture_ls.codice_contratto(+) =bollette_forniture.codice_contratto
       and bollette_forniture_ls.codice_bolletta(+)= bollette_forniture.codice_bolletta
       
   